﻿// test_11.1(2).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

//#include <stdio.h>
//int power(int x, int y)
//{
//	int m=1;
//	if (y > 0)
//	{
//		m = x * power(x, y - 1);
//		return m;
//	}
//	else
//		return 1;
//
//}
//int main()
//{
//	int k,n,sum;
//	printf("请输入底数和次幂：\n");
//	scanf_s("%d %d",&n,&k);
//	sum = power(n, k);
//	printf("%d", sum);
//}
//上述程序为n的k次方递归计算


//#include<stdio.h>
//int sum_dig(int x)
//{
//	int m = 0;
//	int a = 0;
//	if (x % 10 != 0)
//	{
//		a = x % 10;
//		m = a+sum_dig(x / 10);
//		return m;
//	}
//	else
//		return x;
//}
//int main()
//{
//	int n;
//	scanf_s("%d", &n);
//	int ret = sum_dig(n);
//	printf("各位数字的和为%d\n", ret);
//}
//上述程序为求各位数字之和的递归

#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//int sim_strlen(char* p)
//{
//	int a=0;
//	while (*p != '\0')
//	{
//		a++;
//		p++;
//	}
//	return a;
//}
//int main()
//{
//	printf("请输入字符串（小于20）：\n");
//	char arr[20] = {'0'};
//	scanf("%s", arr);
//	int ret=sim_strlen(arr);
//	printf("%d", ret);
//
//
//}
//上述程序为strlen的模拟函数（非递归，需临时变量版本）



//#include<stdio.h>
//int sim_strlen(char* p)
//{
//	if (*p != '\0')
//	{
//		return 1 + sim_strlen(p + 1);
//	}
//	else
//		return 0;
//
//}
//int main()
//{
//	printf("请输入字符串（小于20）：\n");
//	char arr[20] = { '0' };
//	scanf("%s", arr);
//	int ret = sim_strlen(arr);
//	printf("%d", ret);
//}
//上述程序为strlen的递归模拟版本



//#include<stdio.h>
//void dig(int x)
//{
//	if (x % 10 != 0)
//	{
//
//		dig(x / 10);
//		int n = x % 10;
//		printf("%d ", n);
//	}
//}
//int main()
//{
//	int a;
//	printf("请输入一个整数:\n");
//	scanf("%d", &a);
//	dig(a);
//
//
//
//}
//上述程序为用递归的方式打印输入整数的每一位数
